package cn.yitun.chat.yitunservermanagecore.general.manage.core.service;

import cn.yitun.chat.yituncommonmessage.result.ResultMessage;
import cn.yitun.chat.yitunservercommonlib.crud.yitun.CrudService;
import cn.yitun.chat.yitunservercommonlib.dataentity.dto.group.GroupRelationDto;
import cn.yitun.chat.yitunservercommonlib.dataentity.dto.group.GroupDto;
import cn.yitun.chat.yitunservercommonlib.dataentity.po.group.GroupInfo;
import cn.yitun.chat.yitunservercommonlib.dataentity.vo.group.GroupRelationVo;
import cn.yitun.chat.yitunservercommonlib.dataentity.vo.group.GroupCategoryVo;
import cn.yitun.chat.yitunservercommonlib.dataentity.vo.group.GroupMemberVo;
import cn.yitun.chat.yitunservercommonlib.dataentity.vo.group.GroupVo;

import java.util.List;

/**
 * 描述：
 * 
 * @author yitun
 * @date 2014年3月31日 上午11:45:15 version 0.0.1
 */
public interface GroupService
		extends CrudService<GroupDto, GroupInfo, GroupVo> {


	GroupInfo getGroupById(Long id);

	GroupVo getVo(Long id);

	GroupVo getGroupByCode(String code);

	List<GroupCategoryVo> getGroupCategoryListByUserId(Long userId);

	List<GroupRelationVo> getGroupCategoryMemberListByUserId(Long userId);

	List<GroupVo> getGroupCategoryMemberGroupListByUserId(Long userId);

	List<GroupMemberVo> getGroupMemberListByGroupId(Long groupId);

	List<GroupVo> queryGroupList(GroupDto groupQuery);

	ResultMessage add(Long key, Long userId, GroupDto group, GroupRelationDto groupCategoryMember);


	/**
	 * 获取用户在各个群中的权限
	 * @author yitun
	 * @date 2017年6月8日 下午3:32:39
	 * @param userId
	 * @return
	 */
	List<GroupMemberVo> getUserInGroupMemberList(Long userId);
}
